<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<!-- #BeginTemplate "../../../openslp.dwt" -->

<!--
    
    Pristine 1.0
    
    Design copyright Matt Dibb 2006
    www.mdibb.net

    Please feel free to use and modify this template for use on your site.  I dont mind
    if you use it for your personal site or a commercial site, but I do insist that it is
    not sold or given away in some "50,000 Templates!" package or something like that.

-->

    <head profile="http://www.w3.org/2005/10/profile">
        <meta http-equiv="Content-Language" content="en-gb" />
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
        <link rel="stylesheet" type="text/css" href="../../../site.css" />
        <link rel="stylesheet" type="text/css" href="../../../print.css" media="print" />
        <link rel="alternate" type="application/rss+xml" title="OpenSLP&#8230;Recent Activity" href="http://www.sourceforge.net/export/rss2_keepsake.php?group_id=1730" />
        <link rel="alternate" type="application/rss+xml" title="OpenSLP&#8230;News" href="http://www.sourceforge.net/export/rss2_projnews.php?group_id=1730" />
        <link rel="alternate" type="application/rss+xml" title="OpenSLP&#8230;File Releases" href="http://www.sourceforge.net/api/file/index/project-id/1730/mtime/desc/limit/20/rss" />
        <link rel="alternate" type="application/rss+xml" title="OpenSLP&#8230;Reviews" href="http://www.sourceforge.net/projects/openslp/reviews_feed.rss" />
		<link rel="shortcut icon" href="../../../images/openslp_favicon_256color_48px.ico" />
        <!-- #BeginEditable "Page%20Style%20and%20Scripts" -->
	    <!-- #EndEditable -->
        <!-- #BeginEditable "Page%20Title" -->
   <title>OpenSLP Programmers Guide - SLPAttrCallback</title>
	    <!-- #EndEditable -->
    </head>
    <body>
        <div id="content">
            <div id="header">
            	<a href="http://openslp.org/">
				<img src="../../../images/openslp_logo_web_color_150px.jpg" alt="" /></a>
            </div>
            <div id="body">
                <!-- #BeginEditable "Left%20Navigation%20-%20Context%20Specific" -->

                <!-- #EndEditable -->
                <div id="links">
                    <p><a href="../../../index.html">About</a><br/>
                       what is openslp</p>
                    <p><a href="../../../download.html">Download</a><br/>
                       how to get openslp</p>
                    <p><a href="../../../contribute.html">Contribute</a><br/>
                       how to help out</p>
                    <p><a href="../../../documentation.html">Documentation</a><br/>
                       how to find out more</p>
                    <p><a href="../../../credits.html">Credits</a><br/>
                       who to blame</p>
                    <p><a href="http://sourceforge.net/projects/openslp"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=1730&amp;type=2" alt="Get OpenSLP at SourceForge.net. Fast, secure and Free Open Source software downloads"/></a></p>
                </div>

                <div id="main">
                <!-- #BeginEditable "Page%20Content" -->

<h2>SLPAttrCallback<br />
<span id="breadcrumbs"><a href="index.html">OpenSLP Programmer's Guide</a> &raquo; Service Location Functions &raquo; <a href="SLPAttrCallback.html">SLPAttrCallback</a></span></h2>

<h3>Declaration</h3>

<pre>typedef <a href="SLPTypes.html#SLPBoolean">SLPBoolean</a> SLPAttrCallback(
    <a href="SLPTypes.html#SLPHandle">SLPHandle</a> <a href="#hslp">hslp</a>,
    const char* attrlist,
    <a href="SLPTypes.html#SLPError">SLPError</a> <a href="#errcode">errcode</a>,
    void* <a href="#cookie">cookie</a> );
</pre>

<h3>Description</h3>

<p>The <tt>SLPAttrCallback</tt> type is the type of the 
callback function passed as a parameter to the <tt><a href="SLPFindAttrs.html">
SLPFindAttrs()</a></tt>
function.&nbsp; The behavior of the library is differs depending 
on whether the attribute request was by Service URL or by 
service type.</p>

<p>If the <tt><a href="SLPFindAttrs.html">SLPFindAttrs()</a></tt> function was 
called with a Service URL, then the callback is called once regardless of 
whether the handle was opened asynchronously or synchronously.&nbsp; The <tt>
attrlist</tt> parameter will contain a comma separated list of attributes.</p>

<p>If the <tt><a href="SLPFindAttrs.html">SLPFindAttrs()</a></tt> function was 
called with a service type, then the callback called is until no more results 
are available.&nbsp; The <tt>attrlist</tt> parameter will contain a comma 
separated list of attributes. Returns will be collated to remove duplicates if <tt><a href="SLPFindAttrs.html">
SLPFindAttrs()</a></tt> was called synchronously.&nbsp; If it was called 
asynchronously the <tt>attrlist</tt>
may return duplicates.</p>

<h3>Parameters</h3>

<table>
<tr>
<td><a NAME="hslp"></a><tt>hslp</tt></td>
<td>The language specific <tt>SLPHandle</tt> that was passed into the <tt>
SLPFindAttrs()</tt> function.</td>
</tr>
<tr>
<td><a NAME="attrlist"></a><tt>attrlist</tt></td>
<td>Pointer to a buffer containing a comma separated null terminated list 
of attribute id/value assignments in SLP wire format 
&quot;(attr-id=attr-value-list)&quot;.&nbsp;</td>
</tr>
<tr>
<td><a NAME="errcode"></a><tt>errcode</tt></td>
<td>An error code indicating if an error occurred during the operation.&nbsp; 
The callback should check this error code before processing the parameters.</td>
</tr>
<tr>
<td><a NAME="cookie"></a><tt>cookie</tt></td>
<td NOSAVE>The same cookie that was passed as a parameter to the <tt>
SLPFindAttrs()</tt> call.</td>
</tr>
</table>

<h3>Returns</h3>

<p>The callback should return <tt>SLP_TRUE</tt> if more data is 
desired.&nbsp; The callback may continue to return <tt>SLP_TRUE</tt> 
until it is called with an <tt>errcode</tt> of <tt><a href="SLPError.html#SLP_LAST_CALL">
SLP_LAST_CALL</a></tt>.&nbsp; If no more data is requested the 
callback should return <tt>SLP_FALSE</tt>..&nbsp; Since discovery 
of attributes by service-type is not supported, there is 
really no reason to return anything but <tt>SLP_FALSE</tt>&nbsp;from 
the SLPAttrCallback().</p>

<h3>Status</h3>

<table>
<tr>
<td>OpenSLP 1.0.0</td>
<td><tt>SLPAttrCallback</tt> function is implemented as specified by RFC 2614</td>
</tr>
</table>

<br />
<h3>See Also</h3>

<p>
<a href="Syntax.html">Syntax</a>,
<a href="Callbacks.html">Callbacks</a>
</p>
					
<p id="breadcrumbs0">Prepared by: <a href="http://www.calderasystems.com">Caldera Systems Inc</a><br />
Maintained by: <a href="http://www.openslp.org/">openslp.org</a></p>

                <!-- #EndEditable -->
                </div>
            </div>

            <div id="footer">
                Copyright &copy; 2011 <a href="http://www.openslp.org/">openslp.org</a>. All Rights Reserved.<br/>
                Design by <a href="http://www.mdibb.net" title="Website of Matt Dibb">Matt Dibb</a>
                2006. <a href="http://jigsaw.w3.org/css-validator/check/referer" title="Validate CSS">CSS</a> 
                <a href="http://validator.w3.org/check/referer" title="Validate XHTML">XHTML</a>
                <br/>Courtesy of <a href="http://www.openwebdesign.org">Open Web Design</a>
                &amp; <a href="http://seo-services.us">seo</a>
            </div>
        </div>
    </body>
<!-- #EndTemplate -->
</html>
